
package edu.fdzc.learn.utils;
import edu.fdzc.learn.result.ResponseEnum;
import edu.fdzc.learn.utils.ResultVO;

/**
 * 返回结果工具类
 */
public class ResultVOUtil {

    /**
     * 成功返回（无数据）
     */
    public static ResultVO<Void> success() {
        return success(null);
    }

    /**
     * 成功返回（带数据）
     */
    public static <T> ResultVO<T> success(T data) {
        ResultVO<T> result = new ResultVO<>();
        result.setCode(ResponseEnum.SUCCESS.getCode());
        result.setMessage(ResponseEnum.SUCCESS.getMsg());
        result.setData(data);
        return result;
    }

    /**
     * 错误返回（带错误码和消息）
     */
    public static <T> ResultVO<T> error(Integer code, String msg) {
        ResultVO<T> result = new ResultVO<>();
        result.setCode(code);
        result.setMessage(msg);
        return result;
    }

    /**
     * 错误返回（基于响应枚举）
     */
    public static <T> ResultVO<T> error(ResponseEnum responseEnum) {
        return error(responseEnum.getCode(), responseEnum.getMsg());
    }

}